package com.example.onclock;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;

public class CustomAdapter extends BaseAdapter {
    private Context context;//新建Context变量

    private List<ContactModel>data;

    public CustomAdapter(Context context) {//生成Context带参的构造方法
        this.context = context;
    }

    public void setData(List<ContactModel> data) {
        this.data = data;
    }

    //重写BaseAdapter类中这四个方法
    @Override
    //获取listview控件显示内容的长度
    public int getCount() {
        return null != data ? data.size() : 0;//控制列表显示多少，一般情况为数据有多少显示多少
    }
    //给ListView获取复合控件条目布局对象
    //getView()会根据getCount()返回的数据长度（条数）从0开始不断调用
    //参数中的int i 就是数据（List）的脚标，从0开始；
    //参数中的int i 不仅为数据的脚标，也是复合控件条目的脚标一一对应
    //View view为绘制过的条目布局，如果已绘制，则不为null，未绘制则为null
    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {

        Holder holder;

        if(null==view){
            //LayoutInflater.from().inflate将xml布局文件转为view；
        /*from()必需要传入一个Context（可以定义一个Context全局变量，生成其构造方法传入），不传返回结果为null
        就会产生空指针*/
            view= LayoutInflater.from(context).inflate(R.layout.list_item,null);
            //条目布局初始化时，将子控件封装在Holder对象中
            holder=new Holder();
            holder.listimage=view.findViewById(R.id.list_image);
            holder.listtext=view.findViewById(R.id.list_text);
            view.setTag(holder);

        }else {
            holder=(Holder) view.getTag();
        }
        holder.listimage.setImageResource(data.get(i).getContactIcon());
        holder.listtext.setText(data.get(i).getContactTitle());


        return view;
    }
    class Holder{
        ImageView listimage;
        TextView listtext;
    }

    //@Override
//    public View getView(int i, View view, ViewGroup viewGroup) {
//
//        //LayoutInflater.from().inflate将xml布局文件转为view；
//        /*from()必需要传入一个Context（可以定义一个Context全局变量，生成其构造方法传入），不传返回结果为null
//        就会产生空指针*/
//        View view1= LayoutInflater.from(context).inflate(R.layout.list_item,null);
//
//        //获取条目布局里面控件的id
//        ImageView listimage=view1.findViewById(R.id.list_image);
//        TextView listtext=view1.findViewById(R.id.list_text);
//
//        //将数据List中的字段值 赋值给 对应条目子控件
//        //数据跟控件建立联系
//        listimage.setImageResource(data.get(i).getContactIcon());
//        listtext.setText(data.get(i).getContactTitle());
//
//        //添加点击事件
//        listimage.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View view) {
//                Toast.makeText(context,data.get(i).getContactMobile(),Toast.LENGTH_SHORT).show();
//            }
//        });
//
//        return view1;
//    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }
}
